package com.langfeiyes.pattern.composite;


/**
 * 抽象父节点--组件
 * 作用：定制叶子节点跟组合节点方法
 */
public abstract class Component {
    //抽象方法，叶子节点与组合节点都可以实现
    public  abstract void operation();


    //添加子节点：默认实现
    //叶子节点没有此操作，不需要重写，真调用时，抛异常
    //组合节点有此操作，需要重写
    public void addChild(Component child){
        throw new UnsupportedOperationException("对象不支持添加子节点操作");
    }

    //删除子节点：默认实现
    //操作原因同：addChild
    public void removeChild(Component child){
        throw new UnsupportedOperationException("对象不支持删除子节点操作");
    }
    //获取子节点：默认实现
    //操作原因同：addChild
    public Component getChild(int index){
        throw new UnsupportedOperationException("对象不支持获取子节点操作");
    }

}
